9 research outputs found

    Methodological Guidelines for Engineering Self-organization and Emergence

    Get PDF
    The ASCENS project deals with the design and development of complex self-adaptive systems, where self-organization is one of the possible means by which to achieve self-adaptation. However, to support the development of self-organising systems, one has to extensively re-situate their engineering from a software architectures and requirements point of view. In particular, in this chapter, we highlight the importance of the decomposition in components to go from the problem to the engineered solution. This leads us to explain and rationalise the following architectural strategy: designing by following the problem organisation. We discuss architectural advantages for development and documentation, and its coherence with existing methodological approaches to self-organisation, and we illustrate the approach with an example on the area of swarm robotics

    The e-mobility case study

    No full text
    Electro-mobility (e-mobility) is one of the promising technologies being considered by automotive OEMs as an alternative to internal combustion engines as a means of propulsion. The e-mobility case study provides a novel example of a relevant industry application within the ASCENS framework. An overview of the system design is given which describes how e-mobility is conceptualized and then transformed using the ensemble development life cycle (EDLC) approach into a distributed autonomic (i.e self-aware, self-adaptive) component-based software system. The system requirements engineering is based on the state-of-the-affairs (SOTA) approach and the invariant refinement method (IRM) which are both revisited and applied. Regarding the implementation and deployment of the system, a dependable emergent ensembles of components (DEECo) approach is utilized. The DEECo components and ensembles are coded and deployed using the Java-based jDEECo runtime environment. The runtime environment integrates the multi-agent transport simulation tool (MATSim), which is used to predict the effects of the physical interactions of users, vehicles and infrastructure resources. jDEECo handles multiple MATSim instances to allow for different belief states between components and ensembles

    Tools for ensemble design and runtime

    No full text
    The ASCENS project deals with designing systems as ensembles of adaptive components. Among the outputs of the ASCENS project are multiple tools that address particular issues in designing the ensembles, ranging from support for early stage formal modeling to runtime environment for executing and monitoring ensemble implementations. The goal of this chapter is to provide a compact description of the individual tools, which is supplemented by additional downloadable material on the project website.SCOPUS: ar.kinfo:eu-repo/semantics/publishe

    The Invariant Refinement Method

    No full text
    Abstract. The chapter describes IRM, a method that guides the de-sign of smart-cyber physical systems that are built according to the au-tonomic service-component paradigm. IRM is a requirements-oriented design method that focuses on distributed collaboration. It relies on the invariant concept to model both high-level system goals and low-level software obligations. In IRM, high-level invariants are iteratively decom-posed into more specific sub-invariants up to the level that they can be operationalized by autonomous components and component collabora-tions (ensembles). We present the main concepts behind the method, as well the main decomposition patterns that back up the design process, and illustrate them in the ASCENS e-mobility case study

    Reconciling White-Box and Black-Box Perspectives on Behavioral Self-adaptation

    Get PDF
    This paper proposes to reconcile two perspectives on behavioral adaptation commonly taken at different stages of the engineering of autonomic computing systems. Requirements engineering activities often take a black-box perspective: A system is considered to be adaptive with respect to an environment whenever the system is able to satisfy its goals irrespectively of the environment perturbations. Modeling and programming engineering activities often take a white-box perspective: A system is equipped with suitable adaptation mechanisms and its behavior is classified as adaptive depending on whether the adaptation mechanisms are enacted or not. The proposed approach reconciles black- and white-box perspectives by proposing several notions of coherence between the adaptivity as observed by the two perspectives: These notions provide useful criteria for the system developer to assess and possibly modify the adaptation requirements, models and programs of an autonomic system

    The Ensemble Development Life Cycle and Best Practices for Collective Autonomic Systems

    No full text
    Collective autonomic systems are adaptive, open-ended, highly parallel, interactive and distributed software systems. Their key features are so-called self-* properties, such as self-awareness, self-adaptation, self-expression, self-healing and self-management. We propose a software development life cycle that helps developers to engineer adaptive behavior and to address the issues posed by the diversity of self-* properties. The life cycle is characterized by three feedback loops, i.e. based on verification at design time, based on monitoring and awareness in the runtime, and the feedback provided by runtime data to the design phases. We illustrate how the life cycle can be instantiated using specific languages, methods and tools developed within the ASCENS project. In addition, a pattern catalog for the development of collective autonomic systems is presented to ease the engineering process

    The SCEL Language: Design, Implementation, Verification

    Get PDF
    SCEL (Service Component Ensemble Language) is a new language specifically designed to rigorously model and program autonomic components and their interaction, while supporting formal reasoning on their behaviors. SCEL brings together various programming abstractions that allow one to directly represent aggregations, behaviors and knowledge according to specific policies. It also naturally supports programming interaction, self-awareness, context-awareness, and adaptation. The solid semantic grounds of the language is exploited for developing logics, tools and methodologies for formal reasoning on system behavior to establish qualitative and quantitative properties of both the individual components and the overall systems
    corecore